import json
import plotly.express as px
import pandas as pd
filename = 'F:/OneDrive/MYW/data_science/earthquake/eq_data_30_day_m1.json'
with open(filename) as f:
all_eq_data = json.load(f)
all_eq_dicts = all_eq_data['features']
mags,titles,lons,lats = [],[],[],[]
for eq_dict in all_eq_dicts:
try:
mag = eq_dict['properties']['mag']
title = eq_dict['properties']['title']
lon = eq_dict['geometry']['coordinates'][0]
lat = eq_dict['geometry']['coordinates'][1]
except ValueError:
continue
else:
mags.append(mag)
titles.append(title)
lons.append(lon)
lats.append(lat)
data = pd.DataFrame(
data=zip(lons,lats,titles,mags),columns=['经度','纬度','位置','震级']
)
data.head()
| 经度 | 纬度 | 位置 | 震级 | |
|---|---|---|---|---|
| 0 | -116.794167 | 33.486333 | M 1.0 - 8km NE of Aguanga, CA | 0.96 |
| 1 | -148.986500 | 64.667300 | M 1.2 - 11km NNE of North Nenana, Alaska | 1.20 |
| 2 | -74.234300 | -12.102500 | M 4.3 - 69km NNW of Ayna, Peru | 4.30 |
| 3 | -161.680100 | 54.223200 | M 3.6 - 126km SSE of Cold Bay, Alaska | 3.60 |
| 4 | -118.531667 | 35.309833 | M 2.1 - 21km NNW of Tehachapi, CA | 2.10 |
fig = px.scatter(data_frame=data,x='经度',y='纬度',
range_x=[-200,200],range_y=[-90,90],width=800,height=800,
title='全球地震散点图',
size='震级',size_max=10,
color='震级',
hover_name='位置')
fig.write_html('global_erath.html')
fig.show()